package Day_0202.Spring;

/**
 * @author zxc
 * @date 2023/02/02 18:40
 **/
public class SpringIOC {
    public static void main(String[] args) {
        /**
         * SpringIOC的定义
         * ===》
         * 1.IOC（Inversion Of Control）
         * ===》就是控制反转，是指创建对象控制权的转移。
         * （1）以前创建对象的主动权和时机是由自己把控的;
         * （2）而现在这种权力转移到Spring容器中，并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系;
         * （3）对象与对象之间松散耦合，也利于功能的复用。
         * （4）DI依赖注入，和控制反转是同一个概念的不同角度的描述，
         *  即,应用程序在运行时依赖IoC容器来动态注入对象需要的外部资源。
         *  ===>
         *  总结 ：
         *  （1）即，由IOC容器,根据配置文件去创建对象实例 && 管理各个对象实例之间的依赖关系;
         *  （2）DI依赖注入 ：应用程序运行时，依赖IOC容器动态地注入对象;
         *
         * 2.IOC让对象的创建不用去new了，可以由spring自动生产;
         * 使用java的反射机制，根据配置文件，在运行时动态地去创建对象以及管理对象，并调用对象的方法。
         *
         * 3.Spring IOC有三种注入方式 ：
         * （1）构造器注入;
         * （2）setter方法注入;
         * （3）根据注解注入;
         *
         * ===》
         * 总结 ：
         * （1）IoC让相互协作的组件保持松散耦合;
         * （2）AOP编程把遍布于应用各层的功能分离出来形成可重用的功能组件;
         *
         */
    }
}
